package com.fowo.api.model.nav.order.rule;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fowo.api.common.validator.*;
import io.swagger.v3.oas.annotations.media.Schema;
import javax.validation.constraints.*;
import lombok.Getter;
import lombok.Setter;

/**
 * 自发货订单规则 预览导入辅助模型(全字段为文本类型)
 * @author yl_ls
 */
@Getter
@Setter
public class NavOrderRuleImportPo {

  /** 规则名称 */
  @ExcelProperty("*规则名称")
  @NotBlank(message = "规则名称不能为空")
  @Size(max = 50, message = "规则名称长度不能超过50")
  private String name;

  /** 规则类型 */
  @ExcelProperty("*规则类型")
  @NotBlank(message = "规则类型不能为空")
  private String type;

  /** 规则状态 */
  @ExcelProperty("*规则状态")
  @NotBlank(message = "规则状态不能为空")
  private String status;

  /** 订单平台 */
  @ExcelProperty("*订单平台")
  @NotBlank(message = "订单平台不能为空")
  private String baseOrderPlatform;

  /** 订单站点 */
  @ExcelProperty("订单站点")
  @Size(max = 50, message = "订单站点长度不能超过50")
  private String baseOrderSiteName;

  @ExcelIgnore
  @Schema(title = "订单站点")
  private String baseOrderSite;

  /** 订单店铺 */
  @ExcelProperty("订单店铺")
  @Size(max = 50, message = "订单店铺长度不能超过50")
  private String baseOrderShopInfoShopName;

  @ExcelIgnore
  @Schema(title = "订单店铺")
  private String baseOrderShopInfo;

  /** 发货仓库 */
  @ExcelProperty("发货仓库")
  @Size(max = 50, message = "发货仓库长度不能超过50")
  private String deliveryWarehouseName;

  @ExcelIgnore
  @Schema(title = "发货仓库")
  private String deliveryWarehouse;

  /** 物流商 */
  @ExcelProperty("物流商")
  @Size(max = 50, message = "物流商长度不能超过50")
  private String logisticsProviderName;

  @ExcelIgnore
  @Schema(title = "物流商")
  private String logisticsProvider;

  /** 物流方式 */
  @ExcelProperty("物流方式")
  @Size(max = 50, message = "物流方式长度不能超过50")
  private String logisticsChannelLabel;

  @ExcelIgnore
  @Schema(title = "物流方式")
  private String logisticsChannel;

  /** 发货仓库 */
  @ExcelProperty("发货仓库")
  @Size(max = 50, message = "发货仓库长度不能超过50")
  private String warehouseActDeliveryWarehouseName;

  @ExcelIgnore
  @Schema(title = "发货仓库")
  private String warehouseActDeliveryWarehouse;

  /** 备选仓库 */
  @ExcelProperty("备选仓库")
  @Size(max = 50, message = "备选仓库长度不能超过50")
  private String warehouseActOptionWarehouseName;

  @ExcelIgnore
  @Schema(title = "备选仓库")
  private String warehouseActOptionWarehouse;

  /** 自动覆盖订单原有仓库 */
  @ExcelProperty("自动覆盖订单原有仓库")
  private String warehouseActAutoCoverOriginal;

  /** 库存扣减类型 */
  @ExcelProperty("库存扣减类型")
  private String warehouseActInventoryDeductionType;

  /** 海外仓物流自动设定对应海外仓 */
  @ExcelProperty("海外仓物流自动设定对应海外仓")
  private String logisticsActOverseasWarehouseAutoMapping;

  /** 设定方式 */
  @ExcelProperty("设定方式")
  private String logisticsActSettingMethod;

  /** 物流方式 */
  @ExcelProperty("物流方式")
  @Size(max = 50, message = "物流方式长度不能超过50")
  private String logisticsActChannelLabel;

  @ExcelIgnore
  @Schema(title = "物流方式")
  private String logisticsActChannel;

  /** 自动覆盖订单原有物流 */
  @ExcelProperty("自动覆盖订单原有物流")
  private String logisticsActAutoCoverOriginal;

  /** 比价方式 */
  @ExcelProperty("比价方式")
  private String logisticsActPriceParity;

  /** 省州、城市为空填充 */
  @ExcelProperty("省州、城市为空填充")
  private String logisticsAddressActFill;

  /** 省州全称/简称替换 */
  @ExcelProperty("省州全称/简称替换")
  private String logisticsAddressActSelectQJ;

  /** 门牌号解析1 */
  @ExcelProperty("门牌号解析1")
  @Size(max = 50, message = "门牌号解析1长度不能超过50")
  private String logisticsAddressActHouseNoAnalysis1;

  /** 门牌号解析2 */
  @ExcelProperty("门牌号解析2")
  @Size(max = 50, message = "门牌号解析2长度不能超过50")
  private String logisticsAddressActHouseNoAnalysis2;

  /** 门牌号解析3 */
  @ExcelProperty("门牌号解析3")
  @Size(max = 50, message = "门牌号解析3长度不能超过50")
  private String logisticsAddressActHouseNoAnalysis3;

  /** 电话号码简化1 */
  @ExcelProperty("电话号码简化1")
  @Size(max = 50, message = "电话号码简化1长度不能超过50")
  private String addressActPhoneSimplify1;

  /** 电话号码简化2 */
  @ExcelProperty("电话号码简化2")
  @Size(max = 50, message = "电话号码简化2长度不能超过50")
  private String addressActPhoneSimplify2;

  /** 电话号码简化3 */
  @ExcelProperty("电话号码简化3")
  @Size(max = 50, message = "电话号码简化3长度不能超过50")
  private String addressActPhoneSimplify3;

  /** 电话号码简化4 */
  @ExcelProperty("电话号码简化4")
  @Size(max = 50, message = "电话号码简化4长度不能超过50")
  private String addressActPhoneSimplify4;

  /** 邮编处理1 */
  @ExcelProperty("邮编处理1")
  @Size(max = 50, message = "邮编处理1长度不能超过50")
  private String addressActPostHandle1;

  /** 邮编处理2 */
  @ExcelProperty("邮编处理2")
  @Size(max = 50, message = "邮编处理2长度不能超过50")
  private String addressActPostHandle2;

  /** 标发规则 */
  @ExcelProperty("标发规则")
  private String issuActRules;
}
